
#ifndef __UNIT_H__
#define __UNIT_H__

#include <iostream>
#include <string>
using namespace std;

class UnitType
{
public:
    UnitType();
};

class Unit
{
public:
    int getValueOfUnit() const;
    const UnitType& getUnitType() const;
    const char* getUnitName() const;
    bool isSameUnitType(const Unit& other) const;
    virtual Unit& getBaseUnit() const;
    virtual string toString(const int printModel, const int amountInBaseUnit) const;
protected:
    Unit(const int valueInBaseUnit, const UnitType& unitType, const char* unitName);
private:
    int valueInBaseUnit;
    const UnitType& unitType;
    const char* nameOfUnit;
};

#endif

